package com.example.demo.read;

import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;


import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

/**
 * @author HadwinLing
 * @version V1.0
 * @Package com.nanhua.face.read
 * @date 2020/11/14 8:38
 */
@Component
public class ReadFile {
    /**
     *
     * @param filepath
     * @param target
     * @return
     */
    public static boolean readFile(String filepath,String target) throws IOException {
        filepath = filepath.trim();
        String allpath="";
        File file = new File(filepath);
        String homepath = filepath.substring(filepath.lastIndexOf("\\")+1);//获取班级文件名
        File target_home = new File(target+"\\"+homepath);//在新目录上生成班级的文件夹
        // 判断文件父目录是否存在
        if (!target_home.exists()) {
            target_home.mkdirs();
        }

        File[] listFiles = file.listFiles(); // 班级下的学号目录
        for (File listFile : listFiles) {
            String idpath =listFile.getName();// 获取学号文件名
            File target_home_id = new File(target_home+"\\"+idpath+"\\");//在新目录上的班级的文件夹上生成学号文件夹
            // 判断文件父目录是否存在
            if (!target_home_id.exists()) {
                target_home_id.mkdirs();
            }
            File[] fileitems = listFile.listFiles(); //班级下的学号目录下的图片
            for (File fileitem: fileitems) {
                allpath = homepath+"\\"+idpath;

                //读入文件
                File file1 = new File(filepath + "\\" + idpath + "\\" + fileitem.getName());
                FileInputStream in_file = new FileInputStream(file1);


                // file 转 MultipartFile
                MultipartFile multi = new MockMultipartFile(fileitem.getName(), in_file);

                // 创建文件
                //1图片存储的路径
//                String pic_path=target+"\\"+allpath;
                File newfile=new File(target_home_id+"\\"+fileitem.getName());
                newfile.createNewFile();

                //写入
                multi.transferTo(newfile);
            }
        }
        System.out.println("over");
        return true;
    }

    /**
     *  获取班级到图片的路径
     * @param filepath 班级路径
     * @param
     * @return
     */
   /* public static ArrayList getAllFilePath(String filepath){
        filepath = filepath.trim();
        ArrayList allpathlist = new ArrayList();
        String allpath="";
        File file = new File(filepath);
        String homepath = filepath.substring(filepath.lastIndexOf("\\")+1);//获取班级文件名
        File[] listFiles = file.listFiles(); // 班级下的学号目录
        for (File listFile : listFiles) {
            String idpath =listFile.getName();// 获取学号文件名
            File[] fileitems = listFile.listFiles(); //班级下的学号目录下的图片
            for (File fileitem: fileitems) {
                allpath = homepath+"\\"+idpath+"\\"+fileitem.getName();
                allpathlist.add(allpath);
            }
        }
        return allpathlist;
    }
*/











/*    public static void main(String[] args) throws IOException {
//        readFile("C:\\Users\\Aling\\Desktop\\软件","F:\\Test");
//            readFile("C:\\Users\\Aling\\Desktop\\软件","F:\\Test");


*//*        ArrayList allFilePath = getAllFilePath("C:\\Users\\Aling\\Desktop\\软件");
        for (int i =0 ;i <allFilePath.size();i++){
            System.out.println(allFilePath.get(i));
        }*//*
    }*/

}
